package br.com.pucrs.tcc.controller;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ComponentSystemEvent;

import br.com.pucrs.tcc.ed.Convite;
import br.com.pucrs.tcc.exception.ConviteException;
import br.com.pucrs.tcc.rn.ConviteRN;
import br.com.pucrs.tcc.util.jsf.MensagemUtil;

@ManagedBean(name = "ResponderConviteBean")
@ViewScoped
public class ResponderConviteBean {

	private String convite;

	private String resposta;

	private Convite conviteResponder;
	
	private String mensagem;

	@EJB
	private ConviteRN mConviteRN;

	public ResponderConviteBean() {
		conviteResponder = new Convite();

	}

	private Integer idConvite;
	private boolean interesse;

	public void init(ComponentSystemEvent event) throws AbortProcessingException {

		idConvite = Integer.parseInt(convite);
		if (resposta.equalsIgnoreCase("SIM")) {
			interesse = true;
		} else {
			interesse = false;
		}

		conviteResponder = new Convite();
		conviteResponder.setId(idConvite);
		
		
		if (interesse) {
			aceitarConvite();
		}
		else {
			recusarConvite();
		}
	}

	public void aceitarConvite() {
		if (conviteResponder != null) {
			try {
				mConviteRN.aceitaConvite(conviteResponder.getId());
				
				mensagem = "Convite aceito com sucesso.";
			} catch (ConviteException e) {
				mensagem = e.getMessage();
			}
		}
	}
	
	public void recusarConvite() {
		if (conviteResponder != null) {
			try {
				mConviteRN.recusaConvite(conviteResponder.getId());
				mensagem = "Convite recusado com sucesso.";
			} catch (ConviteException e) {
				mensagem = e.getMessage();
			}
		}
	}
	
	
	public String getConvite() {
		return convite;
	}

	public void setConvite(String convite) {
		this.convite = convite;
	}

	public String getResposta() {
		return resposta;
	}

	public void setResposta(String resposta) {
		this.resposta = resposta;
	}

	public Convite getConviteResponder() {
		return conviteResponder;
	}

	public void setConviteResponder(Convite conviteResponder) {
		this.conviteResponder = conviteResponder;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}



}
